With the maturation of web technology, more functionality is being delivered to users via web applications that run inside browsers. A web application can be any piece of functionality that executes in a browser. Applications that once ran as locally-installed software on a desktop computer are now often accessed remotely from the cloud (remotely hosted internet services) via a web browser. Applications like Gmail and Google Docs are perfect examples. Instead of using an installed email client, people use a web browser to access their email. Instead of locally-installed spreadsheet or word processing software, people use a web browser to access Google Docs to create spreadsheets and word documents online.
The web applications, sometimes called Rich Internet Applications (RIA), often leverage web technologies like JavaScript, JavaScript libraries (like jQuery), Ajax, HTML5, CSS3, and others to provide a graphically-rich, responsive interface for a user via a web browser. Web applications can be simple as well and be composed of more standard HTML, CSS, and JavaScript.
As more and more software is delivered via the web, the need for tools to enable easy creation of web applications has grown. One tool developed to meet this need is the Google Web Toolkit (GWT). The GWT is a Java to JavaScript compilation tool that leverages professional Java development and debugging tools to facilitate development of web applications. It also helps alleviate cross-browser compatibility issues and performs optimizations on the compiled JavaScript. Basically, GWT is a tool for more easily writing JavaScript applications using custom code. GWT requires developers to write Java code that is compiled into Javascript GWT is essentially a Java to JavaScript compiler and is broadly applicable for creating many kinds of web applications. GWT is not a declarative application modeling language and has no declarative mechanism for managing rules and relationships among objects and dynamically updating the user interface in response to user actions and selections. GWT also does not transform basic xml data into application data that can be parsed on a server and delivered to users as a fully-functional web application. In other words, GWT is a tool that helps facilitate the creation of JavaScript applications, but GWT does not offer the novel elements of the embodiments described and claimed herein.
Many HTML and CSS frameworks have also been constructed to help ease the burden of creating web sites and web applications. These frameworks are building blocks for web development and facilitate building an invention like the one described here. However, like GWT, these frameworks are not specifically designed to rapidly build and update the type of rules-based applications described herein. Specifically the frameworks do not provide a declarative application modeling language with support for roles that dynamically manage the web application interface based on a user's selections.
Additionally, a particular class of applications that depend on managing complex product relationships and intricate internal logic, often called configurators, has conventionally been delivered as client/server applications where the logic is executed on the server. The client/server interaction introduces latency and processing delays because the client has to send a request to the server for every action taken on the client and then wait for the response from the server.